package team.knowers.qzhserver.course.datum.file.service;

import team.knowers.qzhserver.course.datum.file.entity.dao.FileDO;
import team.knowers.qzhserver.course.datum.file.entity.dto.FileUploadDTO;

import java.util.Set;

/**
 * @author zcb
 * @date 2024/3/9 21:30
 */
public interface FileService {
    /**
     * 上传一个资料到指定资料库
     * @param fileUploadDTO 资料上传参数
     * @return  数据库中新增的资料记录
     */
    FileDO uploadFile(FileUploadDTO fileUploadDTO);

    /**
     * 从缓存和数据库中删除一个资料信息
     * @param id 资料id
     * @return  删除结果
     */

    Boolean deleteFile(String id);

    /**
     * 通过缓存快速查找资料对象
     * @param id    资料id
     * @return  查找到的资料对象
     */
    FileDO getFileById(String id);

    FileCacheService getCacheService();

    /**
     * 获取资料库中所有资料id的集合
     * @param cdid  资料库id
     * @return  资料库中所有资料id的集合
     */
    Set<String> getDatumFileSet(String cdid);

}
